1. Field of the Invention
The present invention relates to computer networks and specifically to gracefully shutting down resources in a computer network.
2. Background Information
A computer network is a geographically distributed collection of nodes interconnected by communication links and segments for transporting data between end stations, such as computers. Many types of network segments are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). LANs typically connect personal computers and workstations over dedicated, private communications links located in the same general physical location, such as a building or a campus. WANs, on the other hand, typically connect large numbers of geographically dispersed nodes over long-distance communications links, such as common carrier telephone lines. The Internet is an example of a WAN that connects disparate networks throughout the world, providing global communication between nodes on various networks. The nodes typically communicate over the network by exchanging discrete frames or packets of data according to predefined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). In this context, a protocol consists of a set of rules defining how the nodes interact with each other.
Certain nodes in the network, such as routers, are often configured to “route” data, such as packets, between various nodes in the network. Routing is typically performed at the network layer or layer-3 (L3) of the Open Systems Interconnect (OSI) Reference Model. Routers often maintain routing databases, which are typically configured to hold routing information including L3 addresses and interface information that the router uses to determine where data (e.g., data packets) are to be forwarded in order to reach their destination. For example, a router may have a routing database containing one or more entries wherein each entry contains a L3 destination address of a destination node and interface information of an interface on the router through which the destination node may be reached. A data packet containing a destination address that matches a destination address of an entry in the routing table is forwarded by the router to the interface specified by the entry for transfer to the destination node.
A router typically executes one or more routing protocols that enable the router to route packets and exchange routing information with other routers in the network. The routers often use this information to configure (e.g., compute) their routing databases. The routing protocols may include distance vector protocols, such as Routing Information Protocol (RIP) or link-state protocols, such as the Intermediate-System-to-Intermediate-System (IS-IS) protocol or the Open Shortest Path First (OSPF) protocol. Routing information is typically exchanged between the routers in the form of advertisement messages. For example, nodes executing the IS-IS protocol exchange information using an advertisement message called a Link State Packet (LSP). Likewise, nodes executing the OSPF protocol exchange routing information using an advertisement message called a Link State Advertisement (LSA). As used herein, an advertisement message refers generically to a message that a routing protocol uses to convey routing information to other intermediate nodes (e.g., a router, a switch) in the network. An intermediate node that acquires an advertisement message may use information contained therein to update its routing database.
Some routing protocols transfer data packets through the network between a source and destination in a connectionless manner. Here, packets travel from the source to the destination “hop-by-hop” via routers in the network on a path determined by the destination address contained in the packet and routing information contained in each router's routing database. Unlike connection-oriented protocols (discussed below), the data packets do not travel on a predefined path (connection) between the source and destination. Rather, the packets may travel on various paths from the source and destination depending on the state of the routing database at each router. An example of a connectionless protocol is the Internet Protocol (IP).
A “connection-oriented” protocol transfers data packets through the network over a predefined path often called a connection or circuit that is established between the source and destination. Here, the connection or circuit is established between the source and destination before any data is transferred. After the connection has been established, data are transferred between the source and destination over the path defined by the connection. When the connection is no longer needed, the connection is typically “torn down” and resources, such as nodes, interfaces, protocols and so on, utilized by the connection are made available for other connections. An example of a connection-oriented protocol is the Multiprotocol Label Switching (MPLS) protocol. A resource, as used herein, refers to entities associated with an intermediate node. These entities may include the intermediate node itself, an interface (e.g., a port) on the intermediate node and a protocol running on the intermediate node.
Some connection-oriented protocols utilize unidirectional connections, which are connections that transfer data in one direction from a source to a destination. For example, a unidirectional connection between a router A and a router B transfers data in one direction from router A to router B. In order to transfer data in the other direction, i.e., from router B to router A, another unidirectional connection from router B to router A would have to be established. The connections may be “signaled” end-to-end using a signaling protocol, such as the Resource Reservation Protocol (RSVP). The end of the connection that initiates the signaling for the connection is often called the “head-end” of the connection and the end of the connection that terminates the signaling is often called the “tail-end” of the connection. The router hosting the “head-end” of the connection is often called the head-end node and the router hosting the “tail-end” of the connection is often called the tail-end node. Thus, for example, in a connection from a source to a destination where router A hosts the “head-end” of the connection and router B hosts the “tail-end” of the connection, router A is the head-end node and router B is the tail-end node.
Some routing protocols provide mechanisms that a router may use to inform other routers in the network of a condition that warrants “removing” a resource associated with the router from service. One reason for providing these mechanisms is to ensure the other routers do not rely on forwarding paths associated with the resource. For example, the IS-IS protocol defines an “overload bit” mechanism that may be inserted into an advertisement message issued by a router to notify other routers in the network that it is unable to process packets for links identified in the message. Other routers in the network acquiring the message may respond by reconfiguring (e.g., re-computing) their routing databases to remove the router from their databases, thus avoiding routing packets to that router.
Another mechanism that may be employed to “remove” resources from a data network is a “max metric” mechanism. Here, a resource is “removed” by advertising routes associated with the resource as having a “maximum path cost” thereby making the routes appear as if their path cost is “infinite” and discouraging their use. For example, a router advertising all routes associated with a particular interface as having an “infinite” path cost may cause other routers acquiring these advertisements to respond by reconfiguring their routing databases to not route packets through the interface.
One problem with the above-described mechanisms is that they do not address the issue of graceful shutdown of a network resource. Graceful shutdown of a network resource involves shutting down a resource such as, an interface, protocol, or a node, in a manner that minimizes disruption of traffic carried in the network. The above-described mechanisms do not remove resources in a “graceful” manner. Rather, these mechanisms may cause nodes in the network to respond in a manner that may lead to the disruption of traffic in the network. For example, a router issuing an advertisement message with the overload bit set may immediately cease forwarding all data sent to the router after the message has been issued. Consequently, “in transit” data that reaches the router after the message has been sent may be lost.
A problem associated with the above-described max metric mechanism is that even though the path cost for a particular route is set to “maximum,” the route may still be used if there is no alternative lower cost route available. Thus traffic may be carried by a network resource advertised as having a maximum path cost even though the purpose of advertising a high cost was to cause traffic to be rerouted around the resource.
In addition, the above-described mechanisms do not “cleanly” address connection-oriented protocols. For example, if an interface is immediately “shut down” connections carried by the interface may be immediately dropped and transit data carried on those connections may be lost, thus, leading to network disruptions. Further, in order to continue transferring data from a source to a destination associated with the dropped connections, new connections that do not use the interface would have to be established. The above-described mechanisms do not address this issue.